common.skill

Apex এর মৌলিক কাঠামো (Basic Structure of Apex)

Computer Programming - এপেক্স (Apex)
318
318

Apex প্রোগ্রামিং ভাষার মৌলিক কাঠামো (Basic Structure) হলো Salesforce প্ল্যাটফর্মে কাস্টম লজিক এবং বিভিন্ন কার্যক্রম সম্পন্ন করার জন্য নির্দিষ্ট কিছু উপাদান ও সিনট্যাক্সের সমন্বয়। এখানে Apex এর মূল কাঠামো এবং এর বিভিন্ন উপাদান তুলে ধরা হলো:


১. Class (ক্লাস)

Apex একটি অবজেক্ট-অরিয়েন্টেড প্রোগ্রামিং ভাষা হওয়ায় এখানে ক্লাসের ভূমিকা অত্যন্ত গুরুত্বপূর্ণ। ক্লাস হলো লজিক এবং ডেটার জন্য একটি ব্লুপ্রিন্ট, যেখানে ফিল্ড, মেথড, কন্সট্রাক্টর ইত্যাদি সংরক্ষণ করা হয়। ক্লাস ডিক্লেয়ার করার জন্য public, private, বা global অ্যাক্সেস মডিফায়ার ব্যবহার করা যায়।

public class MyClass {
    // Variables
    public String name;

    // Constructor
    public MyClass(String name) {
        this.name = name;
    }

    // Method
    public void display() {
        System.debug('Name: ' + name);
    }
}

২. Method (মেথড)

মেথড হলো কার্যকরী কোডের একটি ব্লক, যা নির্দিষ্ট কার্যক্রম সম্পাদন করতে ব্যবহার করা হয়। মেথডে অ্যাক্সেস মডিফায়ার, রিটার্ন টাইপ, নাম এবং প্যারামিটার থাকে।

public void displayMessage(String message) {
    System.debug('Message: ' + message);
}

৩. Variable Declaration (ভ্যারিয়েবল ডিক্লারেশন)

Apex-এ বিভিন্ন ধরনের ডেটা টাইপের ভ্যারিয়েবল ডিক্লারেশন করা যায়। প্রতিটি ভ্যারিয়েবল নির্দিষ্ট ডেটা ধারণ করে এবং ভ্যারিয়েবল ডিক্লারেশনের সময় ডেটা টাইপ উল্লেখ করতে হয়।

public String myString = 'Hello, Salesforce!';
public Integer myNumber = 100;
public Boolean isActive = true;

৪. SOQL এবং SOSL (Query Language)

Apex-এ Salesforce ডেটাবেজে ডেটা খুঁজতে SOQL (Salesforce Object Query Language) এবং SOSL (Salesforce Object Search Language) ব্যবহার করা হয়। SOQL সাধারণত রেকর্ড পুনরুদ্ধার করতে ব্যবহৃত হয়, যেখানে SOSL বিভিন্ন অবজেক্টে সার্চ করতে ব্যবহৃত হয়।

// SOQL Example
List<Account> accounts = [SELECT Id, Name FROM Account WHERE Industry = 'Technology'];

// SOSL Example
List<List<SObject>> searchResults = [FIND 'John' IN ALL FIELDS RETURNING Contact(Name, Phone)];

৫. Trigger (ট্রিগার)

Trigger হলো Apex কোডের একটি বিশেষ অংশ যা ডেটাবেজ ইভেন্টের উপর ভিত্তি করে কাজ করে, যেমন- ডেটা ইনসার্ট, আপডেট, বা ডিলিট হলে।

trigger AccountTrigger on Account (before insert, before update) {
    for(Account acc : Trigger.new) {
        acc.Name = 'Default Name';
    }
}

৬. Control Statements (কন্ট্রোল স্টেটমেন্ট)

Apex-এ লজিক্যাল প্রবাহ নিয়ন্ত্রণ করতে if-else, switch, for loop, while loop ইত্যাদি কন্ট্রোল স্টেটমেন্ট ব্যবহার করা হয়।

// if-else statement
if (isActive) {
    System.debug('Active');
} else {
    System.debug('Inactive');
}

// For Loop
for (Integer i = 0; i < 10; i++) {
    System.debug(i);
}

৭. Exception Handling (এক্সসেপশন হ্যান্ডলিং)

Apex-এ try-catch-finally ব্লক ব্যবহার করে এক্সসেপশন হ্যান্ডলিং করা হয়। এর মাধ্যমে কোডের কোনো অংশে সমস্যা দেখা দিলে তা নির্দিষ্টভাবে নিয়ন্ত্রণ করা যায়।

try {
    Integer result = 10 / 0;
} catch (ArithmeticException e) {
    System.debug('Cannot divide by zero');
} finally {
    System.debug('Operation completed');
}

৮. Comments (কমেন্ট)

কোডে মন্তব্য লিখতে Apex-এ // এবং /* ... */ ব্যবহার করা হয়, যা কোড বুঝতে সহায়ক।

// Single line comment
/* Multi-line comment */

Apex কোডের সাধারণ কাঠামো:

Apex কোড লেখার সময় একটি ক্লাসে মেথড, ভ্যারিয়েবল, কন্ট্রোল স্টেটমেন্ট, এবং কুয়েরি স্টেটমেন্ট গঠন করে একটি সম্পূর্ণ কার্যকরী কোড তৈরি করা হয়। Apex কোডের সাধারণ কাঠামো নিচের মতো:

public class SampleClass {
    
    // Variable declaration
    public String myString = 'Hello';

    // Constructor
    public SampleClass() {
        // Constructor logic
    }

    // Method
    public void displayMessage() {
        System.debug('Message: ' + myString);
    }

    // SOQL Query
    public List<Account> getAccounts() {
        return [SELECT Id, Name FROM Account];
    }
}

Apex-এর এই মৌলিক কাঠামোটি Salesforce প্ল্যাটফর্মে কাস্টম লজিক এবং কার্যক্রম পরিচালনার জন্য একটি শক্তিশালী ভিত্তি তৈরি করে, যা ডেভেলপারদের জন্য সহজে ব্যবহারযোগ্য এবং কার্যকরী কোড তৈরি করতে সহায়ক।

common.content_added_by

Apex ক্লাস এবং মেথডের সংজ্ঞা

320
320

Apex ক্লাস এবং মেথড Salesforce প্ল্যাটফর্মে কাস্টম লজিক তৈরি এবং পরিচালনার জন্য অত্যন্ত গুরুত্বপূর্ণ। Apex ক্লাস এবং মেথড কীভাবে কাজ করে এবং কীভাবে এগুলো সংজ্ঞায়িত করা হয় তা নিচে ব্যাখ্যা করা হলো:


Apex ক্লাসের সংজ্ঞা

Apex ক্লাস হলো একটি কাস্টম অবজেক্ট-অরিয়েন্টেড কাঠামো, যেখানে বিভিন্ন প্রোপার্টি, মেথড, এবং লজিক ডিফাইন করা হয়। এটি একই ধরনের বৈশিষ্ট্য এবং মেথডের সমন্বয়ে গঠিত একটি নীলনকশা হিসেবে কাজ করে, যা বিভিন্ন কাজ করতে পারে।

Apex ক্লাস মূলত বিভিন্ন অ্যাপ্লিকেশনের জন্য প্রয়োজনীয় কার্যক্রমগুলো একত্রিত করে একটি একক কাঠামোতে উপস্থাপন করে, যা পরে অন্যান্য কোড থেকে অ্যাক্সেস করা যায়। Apex ক্লাসের মাধ্যমে সেলসফোর্স ডেটাবেজ ইভেন্ট, ডেটা প্রসেসিং, এবং অন্যান্য কার্যক্রম সহজে পরিচালনা করা যায়।

উদাহরণ:

public class AccountHandler {
    // ক্লাস ভ্যারিয়েবল
    public String accountName;

    // কনস্ট্রাক্টর
    public AccountHandler(String name) {
        accountName = name;
    }

    // একটি মেথড
    public void displayAccountName() {
        System.debug('Account Name: ' + accountName);
    }
}

এখানে AccountHandler নামে একটি ক্লাস তৈরি করা হয়েছে, যেখানে accountName নামে একটি ভ্যারিয়েবল এবং displayAccountName() নামে একটি মেথড ডিফাইন করা হয়েছে।


Apex মেথডের সংজ্ঞা

Apex মেথড হলো ক্লাসের ভিতরে ডিফাইন করা একটি নির্দিষ্ট কার্যক্রম, যা কোনো বিশেষ কাজ সম্পন্ন করে। মেথড একটি কোড ব্লক হিসেবে কাজ করে, যেখানে বিভিন্ন ইনপুট গ্রহণ করে নির্দিষ্ট আউটপুট প্রদান করা হয়। মেথড বিভিন্ন সময়ে বিভিন্ন কাজ করার জন্য একই ক্লাসের অন্যান্য মেথড বা ফাংশনের সাথে যুক্ত হতে পারে।

Apex মেথড ডিফাইন করার সময় অ্যাক্সেস মডিফায়ার, রিটার্ন টাইপ, এবং প্রয়োজনীয় আর্গুমেন্ট উল্লেখ করতে হয়। এটি ক্লাসের একটি অংশ হিসেবে কাজ করে এবং সেই ক্লাসের ভেতরে ডাটা ও প্রোপার্টি ব্যবহার করতে পারে।

উদাহরণ:

public class AccountHandler {
    
    public void createAccount(String name) {
        Account acc = new Account(Name = name);
        insert acc;
        System.debug('Account Created: ' + acc.Id);
    }
}

এখানে createAccount নামে একটি মেথড তৈরি করা হয়েছে, যা একটি নতুন অ্যাকাউন্ট তৈরি করে এবং সেটি সিস্টেমে ইনসার্ট করে।


সংক্ষেপে Apex ক্লাস এবং মেথডের ভূমিকা:

  • Apex ক্লাস: বিভিন্ন প্রোপার্টি ও মেথডের সমন্বয়ে একটি কাঠামো, যা নির্দিষ্ট কাজের জন্য কাস্টম লজিক তৈরি করে।
  • Apex মেথড: ক্লাসের ভিতরে ডিফাইন করা কার্যক্রম, যা নির্দিষ্ট কাজ সম্পন্ন করতে ব্যবহৃত হয়।

Apex ক্লাস ও মেথড একত্রে Salesforce প্ল্যাটফর্মে শক্তিশালী কাস্টম ফাংশনালিটি তৈরিতে সহায়ক।

common.content_added_by

SOQL (Salesforce Object Query Language) এবং SOSL (Salesforce Object Search Language) এর ভূমিকা

242
242

SOQL (Salesforce Object Query Language) এবং SOSL (Salesforce Object Search Language) উভয়ই Salesforce প্ল্যাটফর্মে ডেটা অনুসন্ধান ও পুনরুদ্ধার করার জন্য ব্যবহৃত হয়, তবে তাদের ভূমিকা এবং ব্যবহার আলাদা।


SOQL (Salesforce Object Query Language) এর ভূমিকা

SOQL হলো Salesforce-এর নিজস্ব কুয়েরি ভাষা যা নির্দিষ্ট অবজেক্ট থেকে ডেটা পুনরুদ্ধার করতে ব্যবহৃত হয়। এটি অনেকটা SQL-এর মতো কাজ করে, কিন্তু SOQL শুধুমাত্র Salesforce অবজেক্টের উপর কুয়েরি চালাতে পারে।

SOQL মূলত তখন ব্যবহার করা হয় যখন ডেভেলপাররা নির্দিষ্ট অবজেক্টের নির্দিষ্ট ফিল্ডে থাকা ডেটা অনুসন্ধান করতে চান। উদাহরণস্বরূপ, Account বা Contact অবজেক্ট থেকে নির্দিষ্ট কিছু রেকর্ড এবং ফিল্ড পুনরুদ্ধার করতে SOQL ব্যবহার করা হয়।

SOQL এর গুরুত্বপূর্ণ বৈশিষ্ট্য:

  1. ডেটা ফিল্টারিং: SOQL এর মাধ্যমে WHERE ক্লজ ব্যবহার করে নির্দিষ্ট ডেটা অনুসন্ধান করা যায়।
  2. কাস্টম কুয়েরি: SOQL কাস্টম ফিল্ড এবং অবজেক্ট থেকে ডেটা রিটার্ন করতে পারে।
  3. Aggregate Functions: SOQL Aggregate ফাংশন (যেমন: COUNT, AVG, MIN, MAX) সাপোর্ট করে, যা রিপোর্টিং এবং ডেটা অ্যানালাইসিসের জন্য উপযোগী।
  4. Relationship Query: SOQL Parent-Child বা Child-Parent সম্পর্কিত কুয়েরি চালাতে পারে, যা অবজেক্টগুলির মধ্যে সম্পর্কের ডেটা পুনরুদ্ধারে সহায়ক।

SOQL উদাহরণ:

// Account অবজেক্ট থেকে Id এবং Name ফিল্ডের ডেটা পুনরুদ্ধার
List<Account> accounts = [SELECT Id, Name FROM Account WHERE Industry = 'Technology'];

// Aggregate Function ব্যবহার
AggregateResult[] results = [SELECT COUNT(Id), AVG(AnnualRevenue) FROM Account WHERE Industry = 'Manufacturing'];

SOSL (Salesforce Object Search Language) এর ভূমিকা

SOSL হলো Salesforce-এর সার্চ ভাষা, যা Salesforce ডেটাবেজের একাধিক অবজেক্টে একসাথে অনুসন্ধান করতে ব্যবহৃত হয়। এটি মূলত তখন ব্যবহার করা হয়, যখন ডেভেলপাররা একাধিক অবজেক্টের বিভিন্ন ফিল্ডে নির্দিষ্ট কী-ওয়ার্ড ভিত্তিক সার্চ করতে চান।

SOSL ব্যবহার করে সার্চ চালানো হলে একাধিক অবজেক্টের মধ্যে একটি কী-ওয়ার্ড খুঁজে সব মিল থাকা রেকর্ডকে রিটার্ন করা হয়। এটি অনেকটা সার্চ ইঞ্জিনের মতো কাজ করে।

SOSL এর গুরুত্বপূর্ণ বৈশিষ্ট্য:

  1. মাল্টি-অবজেক্ট সার্চ: SOSL একই সাথে একাধিক অবজেক্টে কী-ওয়ার্ড ভিত্তিক সার্চ করতে পারে।
  2. Flexible Search: SOSL বিভিন্ন ফিল্ডে বা অবজেক্টে একত্রে অনুসন্ধান করতে পারে, যা SOQL-এ সম্ভব নয়।
  3. FIND Keyword: SOSL-এ FIND কিওয়ার্ডের মাধ্যমে নির্দিষ্ট শব্দ বা ফ্রেজ অনুসন্ধান করা হয়, যা Salesforce প্ল্যাটফর্মে দ্রুত সার্চ করার সুবিধা প্রদান করে।
  4. Wildcard Matching: SOSL হালকা ওয়াইল্ডকার্ড ম্যাচিং সমর্থন করে, ফলে কাস্টম সার্চ অভিজ্ঞতা তৈরি করা সহজ হয়।

SOSL উদাহরণ:

// বিভিন্ন অবজেক্টে 'John' নামে থাকা সমস্ত রেকর্ড খুঁজে বের করা
List<List<SObject>> searchResults = [FIND 'John' IN ALL FIELDS RETURNING Account(Name), Contact(FirstName, LastName)];

// Contact এবং Account অবজেক্টে নির্দিষ্ট তথ্য সার্চ করা
List<List<SObject>> searchResults = [FIND 'Tech' IN ALL FIELDS RETURNING Account(Name), Opportunity(Name)];

SOQL এবং SOSL এর তুলনা:

বৈশিষ্ট্যSOQLSOSL
ব্যবহারনির্দিষ্ট অবজেক্টের ডেটা কুয়েরি করতেএকাধিক অবজেক্টে কী-ওয়ার্ড সার্চ করতে
কুয়েরি ভাষাSELECT কিওয়ার্ড ব্যবহার করেFIND কিওয়ার্ড ব্যবহার করে
ফিল্টারিংWHERE ক্লজ দিয়ে ফিল্টার করা যায়ফিল্টারিং কম; নির্দিষ্ট অবজেক্টের সার্চ
Aggregate Functionsসমর্থিতসমর্থিত নয়
Parent-Child Relationshipসমর্থিতসমর্থিত নয়
ফিল্ড টাইপনির্দিষ্ট ফিল্ডে অনুসন্ধানসমস্ত ফিল্ডে অনুসন্ধান

সারসংক্ষেপ:

SOQL এবং SOSL উভয়ই Salesforce প্ল্যাটফর্মে ডেটা অনুসন্ধান এবং পুনরুদ্ধারের জন্য গুরুত্বপূর্ণ ভূমিকা পালন করে। SOQL নির্দিষ্ট অবজেক্টের ডেটা কুয়েরি এবং সম্পর্কিত তথ্য পুনরুদ্ধার করতে ব্যবহৃত হয়, যেখানে SOSL ব্যবহার করে একাধিক অবজেক্টের বিভিন্ন ফিল্ডে দ্রুত কী-ওয়ার্ড ভিত্তিক সার্চ করা যায়। SOQL-এর অ্যাগ্রিগেট ফাংশন এবং Relationship Query-এর মত ফিচারগুলো বিশ্লেষণ এবং রিপোর্টিংয়ে সহায়ক, অন্যদিকে SOSL মাল্টি-অবজেক্ট সার্চে অত্যন্ত কার্যকরী।

common.content_added_by

Apex ট্রিগার এবং তার ব্যবহার

271
271

Apex ট্রিগার হলো একটি Apex কোড যা স্বয়ংক্রিয়ভাবে কার্যকর হয় যখন Salesforce ডেটাবেজে নির্দিষ্ট ইভেন্ট ঘটে, যেমন নতুন রেকর্ড ইনসার্ট, আপডেট, বা ডিলিট করা হয়। ট্রিগার মূলত Salesforce ডেটাবেজে স্বয়ংক্রিয়ভাবে নির্দিষ্ট কার্যক্রম সম্পাদন করতে ব্যবহৃত হয়, এবং এটি বিভিন্ন ব্যবসায়িক নিয়ম এবং প্রক্রিয়া অটোমেশনে সহায়ক।

Apex ট্রিগারের প্রধান ব্যবহার

Apex ট্রিগার সাধারণত কাস্টম ডেটা প্রসেসিং বা ভ্যালিডেশন করার জন্য ব্যবহৃত হয়, যা Salesforce-এর স্ট্যান্ডার্ড কার্যাবলির মাধ্যমে সম্ভব নয়। নিচে Apex ট্রিগারের কয়েকটি সাধারণ ব্যবহার বর্ণনা করা হলো:

ডেটা ভ্যালিডেশন ও অটোমেশন: কোনো রেকর্ড তৈরি বা আপডেট হওয়ার সময় স্বয়ংক্রিয়ভাবে নির্দিষ্ট ডেটা চেক এবং যাচাই করতে ট্রিগার ব্যবহৃত হয়। যেমন, যদি কোনো ফিল্ডের ভ্যালু একটি নির্দিষ্ট রেঞ্জে না থাকে, তবে তা স্বয়ংক্রিয়ভাবে সংশোধন করা বা নির্দিষ্ট বার্তা প্রদান করা যায়।

ডেটা সম্পর্ক সংরক্ষণ: একাধিক অবজেক্টের মধ্যে সম্পর্কিত ডেটা আপডেট করার জন্য ট্রিগার ব্যবহার করা যায়। উদাহরণস্বরূপ, যখন Opportunity-এর স্ট্যাটাস পরিবর্তন হয়, তখন স্বয়ংক্রিয়ভাবে Account-এর স্ট্যাটাস পরিবর্তন করা।

অডিটিং ও লগিং: ডেটার পরিবর্তন সম্পর্কে অডিটিং বা লগিং করার জন্য ট্রিগার কার্যকর। যেমন, যদি কোনো রেকর্ড ডিলিট করা হয়, তবে ট্রিগার সেটি একটি পৃথক লগে সংরক্ষণ করতে পারে।

নতুন রেকর্ড তৈরি: কোনো অবজেক্টে একটি রেকর্ড তৈরি হলে, সেটির উপর ভিত্তি করে অন্য একটি অবজেক্টে নতুন রেকর্ড তৈরি করতে ট্রিগার ব্যবহার করা যায়। যেমন, নতুন কনট্যাক্ট তৈরি হলে স্বয়ংক্রিয়ভাবে একটি স্বাগত চিঠি পাঠানোর জন্য একটি রেকর্ড তৈরি করা।

ডেটা সামঞ্জস্যতা রক্ষা: ডেটার সামঞ্জস্যতা নিশ্চিত করার জন্য বিভিন্ন অবজেক্টের মধ্যে স্বয়ংক্রিয় সিঙ্ক্রোনাইজেশন পরিচালনা করা। উদাহরণস্বরূপ, একটি ফিল্ডের মান পরিবর্তন হলে অন্য একটি অবজেক্টের ফিল্ডের মানও আপডেট করা।


Apex ট্রিগার লিখার ধরণ

Apex ট্রিগার তৈরি করতে কিছু ধাপ অনুসরণ করা হয়। সাধারণত ট্রিগার লেখার সময় তার ইভেন্ট, টাইমিং, এবং প্রয়োজনীয় লজিক নির্ধারণ করা হয়। একটি সাধারণ ট্রিগার লেখার কাঠামো নিচে দেখানো হলো:

trigger AccountTrigger on Account (before insert, after insert, before update, after update) {
    if (Trigger.isBefore) {
        if (Trigger.isInsert) {
            // Insert-এর আগে কার্যক্রম
        } else if (Trigger.isUpdate) {
            // Update-এর আগে কার্যক্রম
        }
    }
    
    if (Trigger.isAfter) {
        if (Trigger.isInsert) {
            // Insert-এর পরে কার্যক্রম
        } else if (Trigger.isUpdate) {
            // Update-এর পরে কার্যক্রম
        }
    }
}

এখানে AccountTrigger নামে একটি ট্রিগার তৈরি করা হয়েছে যা Account অবজেক্টের উপর কার্যকর হয়। এই ট্রিগারটি before insert, after insert, before update, এবং after update ইভেন্টে কাজ করবে।


উদাহরণ: Apex ট্রিগার ব্যবহার

ধরুন, আমাদের এমন একটি ট্রিগার দরকার যা Account রেকর্ড তৈরি করার পর একটি কাস্টম ফিল্ডে স্বয়ংক্রিয়ভাবে মান ইনসার্ট করবে।

trigger AccountTrigger on Account (after insert) {
    for (Account acc : Trigger.new) {
        acc.Custom_Field__c = 'Default Value';
    }
    
    update Trigger.new;
}

এই উদাহরণে, AccountTrigger নামের ট্রিগারটি after insert ইভেন্টে কাজ করবে। নতুন Account রেকর্ড ইনসার্ট করার পর এটি স্বয়ংক্রিয়ভাবে Custom_Field__c ফিল্ডে ডিফল্ট মান সেট করবে এবং সেই রেকর্ড আপডেট করবে।


Apex ট্রিগার ইভেন্টসমূহ

Apex ট্রিগার বিভিন্ন ইভেন্টে কার্যকর করা যায়। প্রধান ইভেন্টগুলো হলো:

  1. before insert: রেকর্ড ইনসার্ট করার আগে কার্যকর।
  2. after insert: রেকর্ড ইনসার্ট করার পর কার্যকর।
  3. before update: রেকর্ড আপডেট করার আগে কার্যকর।
  4. after update: রেকর্ড আপডেট করার পর কার্যকর।
  5. before delete: রেকর্ড ডিলিট করার আগে কার্যকর।
  6. after delete: রেকর্ড ডিলিট করার পর কার্যকর।
  7. after undelete: রেকর্ড পুনরুদ্ধার করার পর কার্যকর।

সংক্ষেপে Apex ট্রিগারের সুবিধা

Apex ট্রিগার বিভিন্ন ব্যবসায়িক প্রক্রিয়া অটোমেশনে সাহায্য করে এবং Salesforce ডেটাবেজে ডেটা পরিবর্তনের উপর ভিত্তি করে স্বয়ংক্রিয় কার্যক্রম পরিচালনা করে। এর মাধ্যমে ডেটা ভ্যালিডেশন, ডেটা সম্পর্কিত কার্যক্রম, এবং অডিটিং সহজ হয়। Apex ট্রিগারের সাহায্যে একটি ডেটা মডেল কাস্টমাইজড নিয়ম মেনে পরিচালনা করা সহজ এবং কার্যকর হয়।

common.content_added_by

Apex এর সিনট্যাক্স এবং কম্পাইলেশন

253
253

Apex-এর সিনট্যাক্স এবং কম্পাইলেশন প্রক্রিয়া Salesforce প্ল্যাটফর্মে কোড লেখার সময় গুরুত্বপূর্ণ ভূমিকা পালন করে। Apex এর সিনট্যাক্স কিছুটা Java-এর মতো এবং এটি Salesforce প্ল্যাটফর্মের জন্য নির্দিষ্ট কিছু নিয়ম ও সীমাবদ্ধতা অনুসরণ করে। Apex কোড কম্পাইল এবং ডিবাগ করার পদ্ধতিও অন্যান্য প্রোগ্রামিং ভাষার থেকে কিছুটা আলাদা।


Apex-এর সিনট্যাক্স

Apex-এর সিনট্যাক্স Java এর সাথে বেশ মিল থাকলেও এটি Salesforce-এর জন্য নির্দিষ্ট কিছু নিয়ম মেনে চলে। নিচে Apex-এর কিছু সাধারণ সিনট্যাক্স কনভেনশন ব্যাখ্যা করা হলো:

Class Declaration (ক্লাস ডিক্লারেশন): Apex-এ ক্লাস ডিফাইন করার সময় public, private, অথবা global কিওয়ার্ড ব্যবহার করতে হয়।

public class MyClass {
    // ক্লাসের মধ্যে বিভিন্ন মেথড, ভ্যারিয়েবল ইত্যাদি ডিফাইন করা যায়
}

Variable Declaration (ভ্যারিয়েবল ডিক্লারেশন): Apex-এ বিভিন্ন ডেটা টাইপে ভ্যারিয়েবল ডিক্লারেশন করা যায়, যেমন String, Integer, Boolean, ইত্যাদি।

public String myString = 'Hello Apex';
public Integer myNumber = 50;

Method Declaration (মেথড ডিক্লারেশন): Apex-এ মেথড ডিক্লারেশন করতে অ্যাক্সেস মডিফায়ার, রিটার্ন টাইপ, মেথড নাম, এবং প্যারামিটার ব্যবহার করতে হয়।

public void myMethod() {
    System.debug('Hello from Apex');
}

SOQL Query Integration: Apex-এ SOQL কুয়েরি লিখে Salesforce ডেটাবেজ থেকে ডেটা পুনরুদ্ধার করা যায়।

List<Account> accounts = [SELECT Id, Name FROM Account];

Control Statements (কন্ট্রোল স্টেটমেন্ট): Apex-এ সাধারণ কন্ট্রোল স্টেটমেন্ট (যেমন: if-else, for loop, while loop) ব্যবহার করা যায়।

if(myNumber > 0) {
    System.debug('Positive number');
}

Exception Handling (এক্সসেপশন হ্যান্ডলিং): Apex-এ try-catch-finally ব্লক ব্যবহার করে এক্সসেপশন হ্যান্ডল করা হয়।

try {
    Integer result = 10 / 0;
} catch (ArithmeticException e) {
    System.debug('Cannot divide by zero');
}

Apex-এর কম্পাইলেশন প্রক্রিয়া

Apex একটি ক্লাউড-বেজড প্ল্যাটফর্মে কাজ করে, তাই কম্পাইলেশন প্রক্রিয়া সরাসরি Salesforce সার্ভারে সম্পন্ন হয়। Apex কোড সংরক্ষণ এবং এক্সিকিউট করার প্রক্রিয়াটি নিচে ব্যাখ্যা করা হলো:

Compilation in the Cloud: Apex কোড Salesforce সার্ভারে কম্পাইল হয়। যখন কোড সংরক্ষণ করা হয়, এটি Salesforce-এর সিস্টেমে কম্পাইল হয় এবং কোনো ভুল থাকলে তৎক্ষণাৎ একটি ত্রুটি বার্তা প্রদান করে।

Syntax Checking: Apex সংরক্ষণ করার সময়ই এটি সিনট্যাক্স চেক করে এবং যদি কোনো সমস্যা থাকে, তাহলে তাৎক্ষণিকভাবে ত্রুটি মেসেজ দেয়। এইভাবে ত্রুটি সংশোধন করা সহজ হয়।

Governor Limits: Salesforce-এর গভর্নর লিমিট অনুযায়ী নির্দিষ্ট সময়ে এবং নির্দিষ্ট রিসোর্সের সীমার মধ্যে কোড সম্পন্ন করতে হবে। গভর্নর লিমিট ছাড়িয়ে গেলে কোড ব্যর্থ হয় এবং ত্রুটি প্রদান করে।

Testing Requirements: Apex কোড ডেপ্লয় করার আগে Salesforce ৭৫% কোড কাভারেজ নিশ্চিত করে। তাই প্রতিটি ক্লাস এবং ট্রিগারের জন্য ইউনিট টেস্ট লিখে কম্পাইল করা প্রয়োজন।

Execution Context: Apex বিভিন্ন নির্দিষ্ট প্রসেসিং মেকানিজম অনুযায়ী কাজ করে। যেমন- এটি ট্রিগার বা ব্যাচ প্রসেসিংয়ের জন্য নির্দিষ্ট প্রসেসিং লজিক অনুসরণ করে।

Debug Logs এবং Testing: Apex-এর ডিবাগ লোগের মাধ্যমে কোডের কার্যকারিতা মনিটর করা যায়। Salesforce প্ল্যাটফর্মে ডেভেলপার কনসোল ব্যবহার করে ডিবাগ লোগ দেখা এবং এক্সিকিউশন ম্যানেজ করা যায়।


উদাহরণ: Apex কম্পাইল এবং রান করার প্রক্রিয়া

কোড লেখার পর সংরক্ষণ: Apex কোড Salesforce প্ল্যাটফর্মে সংরক্ষণ করার সময় এটি তাৎক্ষণিকভাবে কম্পাইল হয় এবং কোনো ত্রুটি থাকলে বার্তা প্রদর্শন করে।

ডিবাগিং: Salesforce ডেভেলপার কনসোলের মাধ্যমে ডিবাগ লোগ দেখা যায়। System.debug ব্যবহার করে কোডে যে কোন স্থানে ডিবাগ মেসেজ যোগ করা যায়।

টেস্ট রেসাল্ট চেক করা: কোড ডেপ্লয় করার জন্য সঠিকভাবে টেস্ট রেসাল্ট পাস করা প্রয়োজন। Salesforce প্ল্যাটফর্মে ইউনিট টেস্টিং টুলস ব্যবহার করে টেস্ট রেসাল্ট যাচাই করা যায়।


Apex এর সিনট্যাক্স Java এর সাথে মিল থাকলেও Salesforce-এর গভর্নর লিমিট, টেস্টিং প্রয়োজনীয়তা এবং ক্লাউড ভিত্তিক কম্পাইলেশন প্রক্রিয়ার কারণে এটি একটু আলাদা। Apex-এর এই কম্পাইলেশন প্রক্রিয়া নিশ্চিত করে যে কোড সঠিকভাবে কাজ করবে এবং Salesforce প্ল্যাটফর্মের নিয়ম এবং সীমাবদ্ধতা মেনে চলবে।

common.content_added_and_updated_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion